package com.kuangstudy.alipay.web;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.kuangstudy.alipay.entity.OrderDetail;
import com.kuangstudy.alipay.service.order.OrderDetailService;
import com.kuangstudy.alipay.service.pay.AlipayService;
import com.kuangstudy.alipay.vo.PayVo;
import com.kuangstudy.alipay.vo.R;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * @description: 阿里支付接口类
 * @author: xuke
 * @time: 2020/9/8 23:34
 */
@Controller
@Log4j2
public class OrderDetailController {

    @Autowired
    private OrderDetailService orderDetailService;

    /**
     * @author xuke
     * @description 支付成功和失败回调
     * @params
     * @date 2020/11/6 9:17
     */

    @PostMapping("/api/paycallback/course")
    @ResponseBody
    public R payCallback(@RequestBody PayVo payVo) {
        String userid = "1";
        QueryWrapper<OrderDetail> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("userid", userid);
        queryWrapper.eq("courseid", payVo.getCourseid());
        int count = orderDetailService.count(queryWrapper);
        return count > 0 ? R.ok() : R.error();
    }

//    @PostMapping("/pay/callback/reward")
//    @ResponseBody
//    public R payRewardCallback(String scount, String courseid) {
//        if (StringUtils.isEmpty(scount)) return R.error();
//        // 1：获取支付用户
//        String userid = "1";
//        Integer zscount = Integer.parseInt(scount);
//        // 2: 获取用户的信息状态
//        // 3：查询用户
//        QueryWrapper<OrderDetail> queryWrapper = new QueryWrapper<>();
//        queryWrapper.eq("userid", userid);
//        queryWrapper.eq("course_id", courseid);
//        Integer count = orderDetailService.count(queryWrapper);
//        // 如果用户是第一次支付，直接返回
//        if (count != null && count == 1 && zscount == 0) {
//            return R.ok();
//        }
//
//        if (count != null && count > 1 && zscount > 0) {
//            // 如果用户是第二次支付传递进来的数量
//            if (zscount < 0) return R.error();
//            if (count > zscount) {
//                return R.ok();
//            }
//        }
//
//        return R.error();
//    }

}
